//
//  LoginPresenter.h
//  MVP
//
//  Created by 曹敬贺 on 16/8/4.
//  Copyright © 2016年 北京无限点乐科技有限公司. All rights reserved.
//

/*
 
 MVP(D) - model view presenter(delegate) 模型视图发起者
 在这种设计模式中，View主要负责UI数据的显示工作，presenter作为发起者，所有的数据发起了响应都要从这里开始
 在这个过程中代理起到了很重要的作用。
 
 
 View <=======> Presenter --------> Model
 
 */

#import <Foundation/Foundation.h>

@class User;

typedef enum
{
    LoginSuccess,
    LoginFailed
}LoginType;

/** 需要Presenter本身去响应的delegate*/
@protocol LoginPresenterActionDelegate <NSObject>

- (void)loginClick;

@end



/** 需要Presenter的delegate本体去实现的内容*/
@protocol LoginPresenterDelegate <NSObject>

- (NSString *)userName;

- (NSString *)userPassword;

- (void)updateUI:(LoginType)type With:(User *)user;


@end

@interface LoginPresenter : NSObject<LoginPresenterActionDelegate>

@property (nonatomic, weak) id<LoginPresenterDelegate>  delegate;

@end
